﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Liquid.Collections {
	/// <summary>
	/// An enumerable that has events for changes.
	/// </summary>
	/// <typeparam name="T">The type of the items in the enumerable.</typeparam>
	public interface IChangeNotifyingEnumerable<T> : IEnumerable<T> {
		/// <summary>
		/// Occurs when a set of items is added.
		/// </summary>
		event ItemSetEventHandler<T> Added;
		/// <summary>
		/// Occurs when a set of items are removed.
		/// </summary>
		event ItemSetEventHandler<T> Removed;
	}
}
